package com.mtw.bbs.common.core.util;


import com.mtw.bbs.common.core.constant.FileConstant;
import org.apache.commons.lang3.StringUtils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.List;

/**
 * 附件工具
 */
public class FileUtil {

    // 常见图片格式
    private final static List<String> imageTypeList = Arrays.asList("png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tif");

    // 常见视频格式
    private final static List<String>  videoTypeList =  Arrays.asList("mp4", "mov", "wmv", "flv", "avi", "avchd", "webm", "mkv");


    /**
     * 获取类型
     */
    public static Integer getTypeByFile(String suffix){

        if (StringUtils.isBlank(suffix)){
            return null;
        }
        suffix = suffix.toLowerCase();
        if (imageTypeList.contains(suffix)){
            return FileConstant.FILE_IMAGE;
        }

        if (videoTypeList.contains(suffix)){
            return FileConstant.FILE_VIDEO;
        }

        return FileConstant.FILE_OTHER;
    }



    /**
     * 根据文件名获取类型
     * @param name          文件名
     * @return              类型
     */
    public static Integer getTypeByFileName(String name){

        if (StringUtils.isBlank(name)){
            return null;
        }

        String suffix  = getFileSuffix(name);

        if (imageTypeList.contains(suffix)){
            return FileConstant.FILE_IMAGE;
        }

        if (videoTypeList.contains(suffix)){
            return FileConstant.FILE_VIDEO;
        }

        return FileConstant.FILE_OTHER;
    }


    /**
     * 根据文件名获取文件后缀
     * @param fileName              文件名
     * @return                      文件后缀
     */
    public static String getFileSuffix(String fileName){
        // 获取文件后缀名
        int indexOfLast = fileName.lastIndexOf(".");
        return fileName.substring(indexOfLast);
    }


}
